home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)ta.d64
/
memory decoder.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
3KB
|
106 lines
5 REM NAME="MEMORY DECODER"
10 REM WRITTEN BY GLEN BODIE
15 POKE53280,0:POKE53281,3
20 HE$="0123456789ABCDEF"
30 PRINT "[147]" TAB(10) "MEMORY DECODER"
40 INPUT "STARTING ADDRESS[144]";SA$
50 INPUT "ENDING ADDRESS[144]";EA$
60 SA=VAL(SA$) : EA=VAL(EA$)
70 IF SA>EA THEN GOTO 40
72 DIM OP$(256)
75 FOR I=1TO256: READ OP$(I): NEXT: K=0
80 FOR I = SA TO EA STEP 20
90 PRINT "[147]ADDRESS REL DEC HEX CHR MACH LANG[144]"
100 FOR J = I TO I+19
110 PRINT J;
120 DE=J-SA : SZ=3 : GOSUB 900
130 PRINT TAB(8) HX$;
140 DE=PEEK(J) : PRINT TAB(11) DE;
150 SZ=2 : GOSUB 900 : DE=PEEK(J)
160 IF DE<32 OR DE>127 THEN DE=32
170 PRINT TAB(17) HX$ TAB(21) CHR$(DE)
180 IF K>0 THEN GOTO 290
190 A$ = OP$(PEEK(J)+1)
200 PRINT "[145]" TAB(25) LEFT$(A$,3)
210 IF LEN(A$)=3 THEN GOTO 300
220 X=VAL(RIGHT$(A$,1))+1
230 ON X GOSUB 400,450,500,550,600,650,700,750,800,850
240 PRINT "[145]" TAB(29) HX$
290 K=K-1
300 NEXT J
360 INPUT "RETURN TO CONTINUE OR 'X' TO EXIT";A$
370 IF A$ ="X" THEN END
380 NEXT I
390 END
400 REM INDIRECT ADDRESSING
410 DE=PEEK(J+2)*256+PEEK(J+1) : SZ=4
420 GOSUB 900 : HX$="($"+HX$+")"
430 K=3 : RETURN
450 REM Y INDEXED ZERO PAGE ADDRESSING
460 DE=PEEK(J+1) : SZ=2 : GOSUB 900
470 HX$="$"+HX$+",Y" : K=2 : RETURN
500 REM IMMEDIATE ADDRESSING
510 DE=PEEK(J+1) : SZ=2 : GOSUB 900
520 HX$="#$"+HX$ : K=2 : RETURN
550 REM ZERO PAGE ADDRESSING
560 DE=PEEK(J+1) : SZ=2 : GOSUB 900
570 HX$="$"+HX$ : K=2 : RETURN
600 REM X INDEXED ZERO PAGE ADDRESSING
610 DE=PEEK(J+1) : SZ=2 : GOSUB 900
620 HX$="$"+HX$+",X" : K=2 : RETURN
650 REM ABSOLUTE ADDRESSING
660 DE=PEEK(J+2)*256+PEEK(J+1) : SZ=4
670 GOSUB 900 : HX$="$"+HX$
680 K=3 : RETURN
700 REM X INDEXED ABSOLUTE ADDRESSING
710 DE=PEEK(J+2)*256+PEEK(J+1) : SZ=4
720 GOSUB 900 : HX$="$"+HX$+",X"
730 K=3 : RETURN
750 REM Y INDEXED ABSOLUTE ADDRESSING
760 DE=PEEK(J+2)*256+PEEK(J+1) : SZ=4
770 GOSUB 900 : HX$="$"+HX$+",Y"
780 K=3 : RETURN
800 REM INDIRECT X INDEXED ADDRESSING
810 DE=PEEK(J+1) : SZ=2 : GOSUB 900
820 HX$="($"+HX$+",X)" : K=2 : RETURN
850 REM INDIRECT Y INDEXED ADDRESSING
860 DE=PEEK(J+1) : SZ=2 : GOSUB 900
870 HX$="($"+HX$+"),Y" : K=2 : RETURN
900 REM CONVERT DECIMAL TO HEX CHARS
910 HX$="" : FOR S=SZ-1 TO 0 STEP -1
920 N%=DE/(16^S) : DE=DE-N%*16^S
930 HX$=HX$+MID$(HE$,N%+1,1)
940 NEXT : RETURN
1000 DATA BRK,ORA8,???,???,???,ORA3,ASL3,???
1008 DATA PHP,ORA2,ASL,???,???,ORA5,ASL5,???
1016 DATA BPL3,ORA9,???,???,???,ORA4,ASL4,???
1024 DATA CLC,ORA7,???,???,???,ORA6,ASL6,???
1032 DATA JSR5,AND8,???,???,BIT3,AND3,ROL3,???
1040 DATA PLP,AND2,ROL,???,BIT5,AND5,ROL5,???
1048 DATA BMI3,AND9,???,???,???,AND4,ROL4,???
1056 DATA SEC,AND7,???,???,???,AND6,ROL6,???
1064 DATA RTI,EOR8,???,???,???,EOR3,LSR3,???
1072 DATA PHA,EOR2,LSR,???,JMP5,EOR5,LSR5,???
1080 DATA BVC3,EOR9,???,???,???,EOR4,LSR4,???
1088 DATA CLI,EOR7,???,???,???,EOR6,LSR6,???
1096 DATA RTS,ADC8,???,???,???,ADC3,ROR3,???
1104 DATA PLA,ADC2,ROR,???,JMP0,ADC5,ROR5,???
1112 DATA BVS3,ADC9,???,???,???,ADC4,ROR4,???
1120 DATA SEI,ADC7,???,???,???,ADC6,ROR6,???
1128 DATA ???,STA8,???,???,STY3,STA3,STX3,???
1136 DATA DEY,???,TXA,???,STY5,STA5,STX5,???
1144 DATA BCC3,STA9,???,???,STY4,STA4,STX1,???
1152 DATA TYA,STA7,TXS,???,???,STA6,???,???
1160 DATA LDY2,LDA8,LDX2,???,LDY3,LDA3,LDX3,???
1168 DATA TAY,LDA2,TAX,???,LDY5,LDA5,LDX5,???
1176 DATA BCS3,LDA9,???,???,LDY4,LDA4,LDX1,???
1184 DATA CLV,LDA7,TSX,???,LDY6,LDA6,LDX7,???
1192 DATA CPY2,CMP8,???,???,CPY3,CMP3,DEC3,???
1200 DATA INY,CMP2,DEX,???,CPY5,CMP5,DEC5,???
1208 DATA BNE3,CMP9,???,???,???,CMP4,DEC4,???
1216 DATA CLD,CMP7,???,???,???,CMP6,DEC6,???
1224 DATA CPX2,SBC8,???,???,CPX3,SBC3,INC3,???
1232 DATA INX,SBC2,NOP,???,CPX5,SBC5,INC5,???
1240 DATA BEQ3,SBC9,???,???,???,SBC4,INC4,???
1248 DATA SED,SBC7,???,???,???,SBC6,INC6,???